'use strict'

import Vue from 'vue'
import Axios from 'axios'
import VueAxios from 'vue-axios'
import { Loading } from 'element-ui'

Axios.defaults.baseURL = process.env.API_SERVER
// CORS请求默认不发送Cookie和HTTP认证信息。如果要把Cookie发到服务器, 一方面要服务器同意，指定'Access-Control-Allow-Credentials: true', 另一方开发者必须在AJAX请求中打开withCredentials属性
Axios.defaults.withCredentials = false
Axios.defaults.headers.common['Content-Type'] = 'application/json; charset=utf-8'
// Axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*'

let loading
// 添加请求拦截器，在请求时，显示 ElementUI 的加载组件
Axios.interceptors.request.use(function (config) {
    loading = Loading.service({fullscreen: true, text: '疯狂加载中'})
    return config
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
})

// 添加响应拦截器 ，请求结束后，关闭 加载组件
Axios.interceptors.response.use(function (response) {
    loading.close()
    return response
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error)
})

Vue.use(Axios, VueAxios)

export const ApiVersion = 'api/'
